home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / snip1292.zip / QUERY.C < prev    next >
C/C++ Source or Header  |  1992-12-26  |  1KB  |  49 lines

  1. /*
  2. **  QUERY.C - Timed query with default for batch files
  3. **
  4. **  public domain by Bob Stout
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <time.h>
  9.  
  10. main(int argc, char *argv[])
  11. {
  12.       int ch = '\0', def_ch = '\0';
  13.       char *prompt = "(y/n) ";
  14.       clock_t start, limit = (clock_t)0;
  15.  
  16.       if (1 < argc)
  17.       {
  18.             def_ch = toupper(*argv[1]);
  19.             if ('Y' == def_ch)
  20.                   prompt[1] = def_ch;
  21.             else if ('N' == def_ch)
  22.                   prompt[3] = def_ch;
  23.             else  def_ch = '\0';
  24.       }
  25.       fputs(prompt, stderr);
  26.       if (2 < argc)
  27.       {
  28.             start = clock();
  29.             limit = (clock_t)(CLK_TCK * atoi(argv[2]));
  30.       }
  31.       while ('Y' != ch && 'N' != ch)
  32.       {
  33.             while (!kbhit())
  34.             {
  35.                   if (limit && (limit <= (clock() - start)))
  36.                   {
  37.                         ch = def_ch;
  38.                         goto BYE;
  39.                   }
  40.             }
  41.             ch = toupper(getch());
  42.             if ('Y' != ch && 'N' != ch && (1 < argc))
  43.                   ch = def_ch;
  44.       };
  45. BYE:  fputc(ch, stderr);
  46.       fputc('\n', stderr);
  47.       return ('Y' == ch);
  48. }
  49.